﻿//对于一个由 0..n 的所有数按升序组成的序列，我们要进行一些筛选，
//每次我们丢弃去当前所有数字中第奇数位个的数。
//重复这一过程直到最后剩下一个数。请求出最后剩下的数字。
//
//数据范围：1≤n≤1000  ，本题有多组输入
//
//输入描述：
//	每组数据一行一个数字，为题目中的n(n小于等于1000)。
//输出描述：
//	一行输出最后剩下的数字。
//
//输入：
//	500
//输出：
//	255

#include <iostream>
using namespace std;

int main() {
    int n;
    while (cin >> n) { // 多组输⼊
        int ret = 1;
        while (ret - 1 <= n) ret *= 2;
        cout << ret / 2 - 1 << endl;
    }
    return 0;
}
